import random

# ========================
# ✅ 塔罗牌部分
# ========================
tarot_deck = [
    "愚者", "魔术师", "女祭司", "女皇", "皇帝", "教皇", "恋人", "战车",
    "力量", "隐士", "命运之轮", "正义", "倒吊人", "死神", "节制", "恶魔",
    "塔", "星星", "月亮", "太阳", "审判", "世界",
    "权杖A", "权杖2", "权杖3", "权杖4", "权杖5","权杖6","权杖7","权杖8","权杖9","权杖10","权杖侍从(Page)","权杖骑士(Knight)","权杖王后(Queen)","权杖国王(King)",
    "圣杯A", "圣杯2", "圣杯3", "圣杯4", "圣杯5","圣杯6","圣杯7","圣杯8","圣杯9","圣杯10","圣杯侍从(Page)","圣杯骑士(Knight)","圣杯王后(Queen)","圣杯国王(King)",
    "宝剑A", "宝剑2", "宝剑3", "宝剑4", "宝剑5","宝剑6","宝剑7","宝剑8","宝剑9","宝剑10","宝剑侍从(Page)","宝剑骑士(Knight)","宝剑王后(Queen)","宝剑国王(King)",
    "钱币A", "钱币2", "钱币3", "钱币4", "钱币5","钱币6","钱币7","钱币8","钱币9","钱币10","钱币侍从(Page)","钱币骑士(Knight)","钱币王后(Queen)","钱币国王(King)"
]

tarot_meanings = {
    "愚者": "新的开始、冒险、自由。",
    "魔术师": "创造力、行动、掌控。",
    "女祭司": "直觉、神秘、潜意识。",
    "女皇": "丰饶、关怀、母性。",
    "皇帝": "权威、结构、领导。",
    "教皇": "传统、信仰、智慧。",
    "恋人": "选择、关系、爱情。",
    "战车": "意志力、胜利、掌控。",
    "力量": "勇气、内在力量、同理心。",
    "隐士": "内省、寻找真相、独处。",
    "命运之轮": "命运转折、机遇、周期。",
    "正义": "公平、真相、因果。",
    "倒吊人": "暂停、牺牲、转变视角。",
    "死神": "结束、转变、重生。",
    "节制": "平衡、调和、耐心。",
    "恶魔": "诱惑、束缚、阴影。",
    "塔": "突变、崩塌、解放。",
    "星星": "希望、灵感、治愈。",
    "月亮": "幻象、潜意识、情绪。",
    "太阳": "成功、活力、乐观。",
    "审判": "觉醒、反思、复活。",
    "世界": "完成、成就、整合。",
    # 小阿尔卡那这里简单化
    # 🌿 权杖
    # A：灵感、行动的开始
    # 2：规划、合作
    # 3：拓展、远景
    # 4：庆祝、安稳
    # 5：竞争、冲突
    # 6：胜利、认可
    # 7：防卫、坚持
    # 8：快速进展
    # 9：坚韧、警惕
    # 10：重担、压力
    # 侍从：新计划、好奇
    # 骑士：热情、冲动
    # 王后：魅力、创造
    # 国王：领导、愿景
    # 🌿 圣杯
    # A：情感新开始
    # 2：伙伴、爱情
    # 3：友谊、庆祝
    # 4：冷淡、厌倦
    # 5：失落、遗憾
    # 6：怀旧、回忆
    # 7：幻想、选择
    # 8：离开、放手
    # 9：满足、愿望成真
    # 10：家庭幸福
    # 侍从：浪漫、好奇
    # 骑士：追求爱情
    # 王后：同理、关怀
    # 国王：情感平衡
    # 🌿 宝剑
    # A：真相、想法
    # 2：犹豫、选择
    # 3：心碎、悲伤
    # 4：休息、恢复
    # 5：冲突、失败
    # 6：过渡、离开
    # 7：秘密、狡诈
    # 8：束缚、限制
    # 9：焦虑、失眠
    # 10：背叛、结束
    # 侍从：好奇、信息
    # 骑士：果断、冲动
    # 王后：冷静、分析
    # 国王：理性、公正
    # 🌿 钱币
    # A：财务机会
    # 2：平衡、权衡
    # 3：合作、工艺
    # 4：保守、积累
    # 5：匮乏、困难
    # 6：慷慨、分享
    # 7：耐心、等待
    # 8：专注、学习
    # 9：独立、丰裕
    # 10：家族财富
    # 侍从：新机会
    # 骑士：稳定、踏实
    # 王后：照顾、丰盛
    # 国王：成就、管理
}

def draw_one():
    card = random.choice(tarot_deck)
    meaning = tarot_meanings.get(card, "（牌意待补充）")
    print("\n【塔罗牌 - 单张抽牌】")
    print(f"抽到的牌：{card}")
    print(f"牌意：{meaning}")

def draw_three():
    cards = random.sample(tarot_deck, 3)
    positions = ["过去", "现在", "未来"]
    print("\n【塔罗牌 - 三张牌阵】")
    for i in range(3):
        meaning = tarot_meanings.get(cards[i], "（牌意待补充）")
        print(f"{positions[i]}：{cards[i]} - {meaning}")

# ========================
# ✅ 易经部分
# ========================
def single_line():
    coins = [random.choice([2, 3]) for _ in range(3)]
    total = sum(coins)
    if total == 6:
        return "⚋（老阴，变爻）"
    elif total == 7:
        return "⚊（少阳，静爻）"
    elif total == 8:
        return "⚋（少阴，静爻）"
    elif total == 9:
        return "⚊（老阳，变爻）"

def cast_hexagram():
    lines = []
    for i in range(6):
        line = single_line()
        lines.append(line)
    print("\n【易经 - 六爻卦象】")
    print("从下到上排列如下：")
    for idx, line in enumerate(lines[::-1], 1):
        print(f"第{idx}爻：{line}")


    # | 名称 | 卦象(三爻自下而上)    | 代表意义   | 象征    |
    # | 乾  | ☰(三阳爻)             | 天、刚健   | 天空、父亲 |
    # | 坤  | ☷(三阴爻)             | 地、顺从   | 大地、母亲 |
    # | 震  | ☳(阳、阴、阴)         | 雷、发动   | 雷声、长子 |
    # | 巽  | ☴(阴、阳、阳)         | 风、入、柔顺 | 风、长女  |
    # | 坎  | ☵(阴、阳、阴)         | 水、险难   | 水、次子  |
    # | 离  | ☲(阳、阴、阳)         | 火、光明   | 火、次女  |
    # | 艮  | ☶(阳、阳、阴)         | 山、止息   | 山、少子  |
    # | 兑  | ☱(阴、阴、阳)         | 泽、悦    | 湖泽、少女 |

    # | 序  | 卦名 | 上卦 | 下卦 | 象意         |
    # | 1  | 乾  | 乾  | 乾  | 天行健，君子自强不息 |
    # | 2  | 坤  | 坤  | 坤  | 地势坤，君子厚德载物 |
    # | 3  | 屯  | 震  | 坎  | 起始困难，孕育萌发  |
    # | 4  | 蒙  | 艮  | 坎  | 蒙昧、启蒙      |
    # | 5  | 需  | 乾  | 坎  | 需待、等待机遇    |
    # | 6  | 讼  | 坎  | 乾  | 争讼、诉讼      |
    # | 7  | 师  | 坤  | 坎  | 军队、纪律      |
    # | 8  | 比  | 坎  | 坤  | 亲比、联合      |
    # | 9  | 小畜 | 巽  | 乾  | 小的积蓄、约束    |
    # | 10 | 履  | 乾  | 兑  | 谨慎行事、礼仪    |
    # | 11 | 泰  | 坤  | 乾  | 通泰、顺畅      |
    # | 12 | 否  | 乾  | 坤  | 阻隔、不通      |
    # | 13 | 同人 | 乾  | 离  | 与人同心协力     |
    # | 14 | 大有 | 离  | 乾  | 丰盛拥有       |
    # | 15 | 谦  | 坤  | 艮  | 谦虚、柔顺      |
    # | 16 | 豫  | 震  | 坤  | 喜乐、预备      |
    # | 17 | 隨  | 兑  | 震  | 随顺、跟随      |
    # | 18 | 蠱  | 艮  | 巽  | 腐败、修补      |
    # | 19 | 臨  | 坤  | 兑  | 接近、关怀      |
    # | 20 | 觀  | 巽  | 坤  | 观察、观照      |
    # | 21 | 噬嗑 | 离  | 震  | 咬合、解决阻碍    |
    # | 22 | 賁  | 艮  | 离  | 装饰、美化      |
    # | 23 | 剝  | 坤  | 艮  | 剥落、退化      |
    # | 24 | 復  | 震  | 坤  | 回归、复始      |
    # | 25 | 無妄 | 乾  | 震  | 无心之失、纯正    |
    # | 26 | 大畜 | 艮  | 乾  | 大的积蓄、养德    |
    # | 27 | 頤  | 震  | 艮  | 养口、滋养      |
    # | 28 | 大過 | 兑  | 巽  | 过大、压力      |
    # | 29 | 坎  | 坎  | 坎  | 险难、陷阱      |
    # | 30 | 離  | 离  | 离  | 光明、明智      |
    # | 31 | 咸  | 兑  | 艮  | 感应、相互吸引    |
    # | 32 | 恆  | 震  | 巽  | 恒常、持久      |
    # | 33 | 遯  | 乾  | 艮  | 隐退、退避      |
    # | 34 | 大壯 | 震  | 乾  | 大的壮盛、用力    |
    # | 35 | 晉  | 离  | 坤  | 晋升、进步      |
    # | 36 | 明夷 | 坤  | 离  | 受伤、隐藏光明    |
    # | 37 | 家人 | 巽  | 离  | 家庭、伦理      |
    # | 38 | 睽  | 离  | 兑  | 分离、对立      |
    # | 39 | 蹇  | 坎  | 艮  | 困难、阻碍      |
    # | 40 | 解  | 震  | 坎  | 解除、解放      |
    # | 41 | 損  | 艮  | 兑  | 损减、减少      |
    # | 42 | 益  | 巽  | 震  | 增益、利益      |
    # | 43 | 夬  | 乾  | 兑  | 决断、果断      |
    # | 44 | 姤  | 兑  | 乾  | 相遇、邂逅      |
    # | 45 | 萃  | 坤  | 兑  | 聚集、集合      |
    # | 46 | 升  | 巽  | 坤  | 上升、进取      |
    # | 47 | 困  | 兑  | 坎  | 困境、受阻      |
    # | 48 | 井  | 坎  | 巽  | 井水、滋养      |
    # | 49 | 革  | 兑  | 离  | 改革、变革      |
    # | 50 | 鼎  | 离  | 巽  | 鼎器、煮炼、文化   |
    # | 51 | 震  | 震  | 震  | 雷动、惊恐      |
    # | 52 | 艮  | 艮  | 艮  | 静止、止息      |
    # | 53 | 漸  | 巽  | 艮  | 渐进、循序      |
    # | 54 | 歸妹 | 震  | 兑  | 女嫁、关系不正    |
    # | 55 | 豐  | 震  | 离  | 丰盛、昌盛      |
    # | 56 | 旅  | 离  | 震  | 旅行、漂泊      |
    # | 57 | 巽  | 巽  | 巽  | 风、入、柔顺     |
    # | 58 | 兌  | 兑  | 兑  | 悦、喜悦       |
    # | 59 | 渙  | 坎  | 巽  | 涣散、分离      |
    # | 60 | 節  | 坎  | 兑  | 节制、限制      |
    # | 61 | 中孚 | 巽  | 兑  | 诚信、真心      |
    # | 62 | 小過 | 震  | 艮  | 小的过失、谨慎    |
    # | 63 | 既濟 | 坎  | 离  | 完成、既成      |
    # | 64 | 未濟 | 离  | 坎  | 未完成、未竟     |



# ========================
# ✅ 主菜单
# ========================
def main():
    print("\n=============================")
    print("🌟 占卜工具")
    print("=============================")
    print("请选择要进行的占卜类型：")
    print("1 - 塔罗牌占卜")
    print("2 - 易经起卦")
    choice = input("输入选项数字（1或2）： ").strip()

    if choice == "1":
        print("\n你选择了塔罗牌占卜。")
        print("请选择塔罗抽牌方式：")
        print("1 - 单张抽牌")
        print("2 - 三张牌阵（过去/现在/未来）")
        tarot_choice = input("输入选项数字（1或2）： ").strip()
        if tarot_choice == "1":
            draw_one()
        elif tarot_choice == "2":
            draw_three()
        else:
            print("输入错误，程序结束。")
    elif choice == "2":
        print("\n你选择了易经起卦。")
        cast_hexagram()
    else:
        print("输入错误，程序结束。")

# ========================
# ✅ 运行入口
# ========================
if __name__ == "__main__":
    main()
